The development of sophisticated Enterprise Resource Planning (“ERP”) software applications typically involves the integration of processes running on a client device with processes running on a server. For example, a client device may run a browser with an event handling system, which communicates with an enterprise server over a network such as the Internet. The server responds to requests generated by the browser and event handing system, serves data to the client and/or updates presentation of the data on the client device.
Examples of Web-based applications include server page technologies (“xSP”) such as active server pages (“ASP”) from Microsoft or Java Server Pages (“JSP”) from Sun Microsystems.
SAP AG provides a Web Application Server (“WAS”) that enables new Internet applications to be combined with the transactional operations of ERP. One type of xSP application is referred to herein as a Business Server Page (“BSP”) application. In a BSP application, the presentation of the enterprise Web-based application is organized into elements referred to as BSPs that correspond to individual views (i.e., the view element of the Model View Controller (“MVC”) design pattern) for an application.
In BSP applications, the HTML or other presentation language code consumed by the client-side browser typically is generated on the server from BSPs that reside on the server and that are arranged in a tree-like structure. Presentation code refers to the code that is interpreted by a Graphical User Interface (“GUI”) program such as a browser, which then displays a GUI based on the presentation code. For example, HTML is presentation code in that it provides a set of tags to indicate how data should be formatted and displayed by a browser.
A core part of a BSP application is BSP pages that include program code and HTML, which can be compiled by the server upon request to generate presentation code (typically (“HTML”)). BSP pages are typically arranged in a tree-like structure.
Web-based applications or xSPs such as BSP applications-often provide limited interactivity because event handling requires that data travel a roundtrip from the client to the sever and back to the client. This roundtrip process includes detection of an event on the client device, submission of the request to the server, processing of the request on the server, transmission of the response back to the client, and finally post-processing (such as updating the presentation of data) on the client (typically through a callback function). If the request/response is synchronous (e.g., it uses HTTP Post and Get modes), the overall behavior of the application may be sluggish due to the blocking nature of the synchronous transaction. In a synchronous environment, only one HTTP transaction can be completed at a time. Thus, if a first HTTP transaction has been initiated it must be completed before a second HTTP transaction can be completed.
In addition, an event that triggers a request from the client to the server is often wasteful of processor bandwidth on the client and on the server because it may require the rendering of unnecessary portions of the HTML code. For example, with BSP applications, any event occurring on the client may require rendering of the complete BSP tree on the server in the in-order processing sequence, even though not all areas of the tree may need to be updated.
Processor bandwidth on both the client and server can be expended unnecessarily if pages are rendered that are not necessary as a result of the triggering event. In addition, this scenario is wasteful of network bandwidth because any unnecessary rendering on the server requires the transmission of the unnecessarily rendered pages between the client and server.
To improve the interactivity of xSP applications, a need exists for a mechanism to render only a portion of presentation code directly correlated to a triggering object.